package com.imooc.distributedemo.resume.nowcoder;

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

/**
 * 输出第一个只出现一次的字符，如果不存在输出-1
 * 输入：
 * asdfasdfo
 * 输出：
 * o
 */
public class FindFirstOccurLetterSolution {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNext()) { // 注意 while 处理多个 case
            String str = in.next();
            // int b = in.nextInt();
            // System.out.println(a + b);
            //创建一个集合对象,键值对的类型分别为Character,Integer,分别用于保存字符和字符的次数
            Map<Character, Integer> map = new HashMap<Character, Integer>();
            //字符串改为字符数组
            char[] array = str.toCharArray();
            //遍历数组，得到每一个字符
            for (Character c : array) {
                if (map.containsKey(c))//先判断集合中是否存在某一个字符，字符作为key，如果存在,则获取其
                //对应的value,也就是字符的次数，然后字符的次数加1
                {
                    Integer num = map.get(c);//得到value,也就是字符对应的次数,
                    num++;//此时该字符的数目需要加1
                    //得到字符的新的数目过后，需要添加到集合对应字符的value中去，此时需要重新键-值对,
                    map.put(c, num);
                } else {//此一步表示集合没有该该字符，也就是集合中不存在以c为键值的Key,需要将该字符作为键保存在集合中去，并
                    //赋值value为1
                    map.put(c, 1);
                }

            }
            System.out.println(map);
            for (Map.Entry<Character, Integer> entry : map.entrySet()) {
                if (entry.getValue() == 1) {
                    System.out.println(entry.getKey());
                    break;
                } else {
                    continue;
                }
            }
        }
    }
}
